package com.tanhua.server.interceptor;

import com.tanhua.model.domain.User;

/**
 * ThreadLocal的存储类，可以使线程有存储数据的能力，
 * 线程内调用的方法都可以从ThreadLocal中获取同一个对象。
 * 多个线程中ThreadLocal数据相互隔离
 * ThreadLocal工具类
 */
public class ThreadLocalUtils {

    //泛型
    private static ThreadLocal<User> tl = new ThreadLocal<>();

    //向threadLocal中存储用户
    public static void set (User user){
        tl.set(user);
    }

    //在threadlocal中获取用户
    public static User getUser(){
        User user = tl.get();
        return user;
    }
    //在threadlocal中获取用户的id
    public static Long getUserId(){
        Long id = tl.get().getId();
        return id;
    }
    //在threadlocal中获取用户的手机号码
    public  static String getUserPhone(){
        String mobile = tl.get().getMobile();
        return mobile;
    }

    //清楚ThreaLocal中的user
    public static  void remove(){
        tl.remove();
    }
}
